import Service from '../service_0_0_6.js'

/**
 * Сообщение, пересылаемое от компонента 'devtools' к компоненту 'options'
 */
export default class DtoMessage {
    /** @type {string} */
    url

    constructor(url) {
        this.url = url
    }

    /**
    * Создать экземпляр класса с указанием параметров
    * @param {string} url объект запроса
    * @returns экземпляр класса DtoRequest
    */
    static BuildFromParams(url) {
        return new DtoMessage(url)
    }

    /**
    * Десериализация объекта в виде JSON в объект класса DtoMessage
    * @param {object} json объект запроса в виде JSON
    * @returns экземпляр класса DtoRequest
    */
    static BuildFromJson(json) {
        let obj = JSON.parse(json)
        return new DtoMessage(obj.url)
    }

    /** @type {URL} */
    getUrl() {
        return new URL(this.url)
    }

    /**
    * Сериализация объекта текущего класса в текст JSON в виде одновложенного массива
    * @returns экземпляр класса DtoMessage в виде строки в JSON
    */
    getStringifyObject() {
        return JSON.stringify(Service.getObjectAllScoupe(this))
    }
}